package com.woniu.product.service;

import com.github.pagehelper.PageInfo;
import com.woniu.product.dto.ClassDto;
import com.woniu.product.dto.VenueClassDto;
import com.woniu.product.form.venueClass.LoadVenueClassByConditionForm;
import com.woniu.product.model.Class;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniu.product.param.*;
import com.woniu.product.param.venueClass.LoadVenueClassParam;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 杜岷芫
 * @since 2024年07月12日
 */
public interface ClassService extends IService<Class> {



    Class ByIdClass(Integer id)throws Exception;

    void addClass(AddClassParam param)throws Exception;

    void delClass(Integer classId)throws Exception;


    void putawayClass(Integer classId, Integer venueId)throws Exception;

    List<Class> loadAllClass(String className,Integer classType)throws Exception;


    void updateClassState(UpdateClassStateParam param)throws Exception;

    void addPersonal(AddPersonalParam param)throws Exception;

    void delPersonal(Integer classId)throws Exception;

    List coachByIdClass(Integer coachId)throws Exception;

    List venueByIdClass(Integer venueId)throws Exception;

    PageInfo<ClassDto> pageAllClass(PageCoachClassParam param)throws Exception;

    List loadListClass()throws Exception;

    List loadListPersonal()throws Exception;

    PageInfo<VenueClassDto> pageAllVenueClass(PageAllVenueClassParam param)throws Exception;

    List coachByIdPersonal(Integer coachId)throws Exception;

    void updateClassPersonal(UpdateClassPersonalParam param);

    PageInfo<VenueClassDto> load(LoadVenueClassParam param);

    List<VenueClassDto> loadVenueClassByCondition(LoadVenueClassByConditionForm form);
}
